home *** CD-ROM | disk | FTP | other *** search
- INPUT "filename";Nam$
- OPEN Nam$ FOR INPUT AS 1
- Form$=INPUT$(4,1)
- Length=CVL(INPUT$(4,1))
- IF INPUT$(4,1)<>"ILBM" THEN
- PRINT "Error in data!"
- END
- END IF
-
-
- ReadData:
- IF EOF(1) THEN END
- Chunk$=INPUT$(4,1)
- Length=CVL(INPUT$(4,1))
- IF INT(Length/2)<>(Length/2) THEN Length=Length+1
- IF Chunk$="BMHD" THEN BMHeader
- IF Chunk$="CMAP" THEN ColorMap
- IF Chunk$="BODY" THEN BodyMap
- Dummy$=INPUT$(Length,1)
- GOTO ReadData
-
- BMHeader:
- xd=CVI(INPUT$(2,1))
-
- yd=CVI(INPUT$(2,1))
-
- Dummy$=INPUT$(4,1)
- BitPlane=ASC(INPUT$(1,1))
- Dummy$=INPUT$(11,1)
- IF xd =320 THEN Typ =1
- IF xd = 640 THEN Typ =2
- IF yd >200 THEN Typ=Typ+2
- SCREEN 1,xd,yd,BitPlane,Typ
- WINDOW 2,Nam$,,0,1
- Addr=PEEKL(WINDOW(8)+4)+8
- FOR x=0 TO BitPlane-1
- PlaneAddr(x)=PEEKL(Addr+4*x)
- NEXT x
- GOTO ReadData
-
- ColorMap:
- FOR x=1 TO (Length/3)
- r=(ASC(INPUT$(1,1)) AND 240)/16
- g=(ASC(INPUT$(1,1)) AND 240)/16
- b=(ASC(INPUT$(1,1)) AND 240)/16
-
- PALETTE (x-1),r/16,g/16,b/16
- NEXT x
- IF INT(Length/3)<>(Length/3) THEN Dummy$=INPUT$(1,1)
- GOTO ReadData
-
- BodyMap:
- ByteLine=xd/8
- FOR y1=0 TO yd-1
- FOR b=0 TO BitPlane-1
-
- FOR x1=0 TO ByteLine/4-1
- POKEL PlaneAddr(b)+4*x1+40*y1,CVL(INPUT$(4,1))
- NEXT x1
- NEXT b
- NEXT y1
- GOTO ReadData
-
-
-